package com.youjiang.meeting.utils;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.util.WebUtils;

import com.youjiang.meeting.po.UserInfo;

import net.sf.json.JSONObject;

public class ToolUtils {
	
	/**
	 * 创建一个静态的Map然后每登录一次就将session添加到这个map中，
	 * 因为每个session是唯一的，也不会重复添加，在receive方法里可
	 * 以通过便利这个map然后获取每个session里的用户信息，然后粉丝有
	 * toUserName是公众号名，然后通过这个可以获取用户信息如果这个用
	 * 户信息和map里面的session的用户匹配则表示粉丝和这个用户绑定到了一起
	 * 
	 */
	public static Map<Integer,HttpSession> sessions = new HashMap<>();
	
	/**
	 * 获取返回的json字符串
	 * @param jObject
	 * @param code
	 * @param msg
	 * @return
	 */
	public static String json(JSONObject jObject,String code,String msg){
		jObject.put("code", code);
		jObject.put("msg", msg);
		return jObject.toString();
	}
	
	/**
	 * 根据session查找用户信息
	 * @return
	 */
	public static UserInfo getUserInfoBySession(){
		HttpSession session = getSession();
		UserInfo info = (UserInfo) session.getAttribute("userInfo");
		if(info!=null){
			return info;
		}
		return null;
	}
	
	
	/**
	 * 获取全局session
	 * @return
	 */
	static HttpSession session = null; 
	public static HttpSession getSession() {  
		try { 
			if(session==null){
			   session = getRequest().getSession(); 
			}
		} catch (Exception e) {
			e.printStackTrace();
		} 
		return session; 
	} 

	public static HttpServletRequest getRequest() { 
		
		ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder 
		.getRequestAttributes(); 
		return attrs.getRequest(); 
	} 

}
